home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / benchmarks / itc / cc1.spur / insn-emit.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-08-30  |  21.0 KB  |  836 lines

  1. /* Generated automatically by the program `genemit'
  2. from the machine description file `md'.  */
  3.  
  4. #include "config.h"
  5. #include "rtl.h"
  6. #include "expr.h"
  7. #include "insn-config.h"
  8.  
  9. extern char *insn_operand_constraint[][MAX_RECOG_OPERANDS];
  10.  
  11. extern rtx recog_operand[];
  12. #define operands recog_operand
  13.  
  14. #define FAIL do { emit_to_sequence--; return 0;} while (0)
  15.  
  16. #define DONE do { emit_to_sequence--; return gen_sequence ();} while (0)
  17.  
  18. rtx
  19. gen_cmpsi (operand0, operand1)
  20.      rtx operand0;
  21.      rtx operand1;
  22. {
  23.   return gen_rtx (SET, VOIDmode, cc0_rtx, gen_rtx (MINUS, VOIDmode, operand0, operand1));
  24. }
  25.  
  26. rtx
  27. gen_tstsi (operand0)
  28.      rtx operand0;
  29. {
  30.   return gen_rtx (SET, VOIDmode, cc0_rtx, operand0);
  31. }
  32.  
  33. rtx
  34. gen_beq (operand0)
  35.      rtx operand0;
  36. {
  37.   return gen_rtx (SET, VOIDmode, pc_rtx, gen_rtx (IF_THEN_ELSE, VOIDmode, gen_rtx (EQ, VOIDmode, cc0_rtx, const0_rtx), gen_rtx (LABEL_REF, VOIDmode, operand0), pc_rtx));
  38. }
  39.  
  40. rtx
  41. gen_bne (operand0)
  42.      rtx operand0;
  43. {
  44.   return gen_rtx (SET, VOIDmode, pc_rtx, gen_rtx (IF_THEN_ELSE, VOIDmode, gen_rtx (NE, VOIDmode, cc0_rtx, const0_rtx), gen_rtx (LABEL_REF, VOIDmode, operand0), pc_rtx));
  45. }
  46.  
  47. rtx
  48. gen_bgt (operand0)
  49.      rtx operand0;
  50. {
  51.   return gen_rtx (SET, VOIDmode, pc_rtx, gen_rtx (IF_THEN_ELSE, VOIDmode, gen_rtx (GT, VOIDmode, cc0_rtx, const0_rtx), gen_rtx (LABEL_REF, VOIDmode, operand0), pc_rtx));
  52. }
  53.  
  54. rtx
  55. gen_bgtu (operand0)
  56.      rtx operand0;
  57. {
  58.   return gen_rtx (SET, VOIDmode, pc_rtx, gen_rtx (IF_THEN_ELSE, VOIDmode, gen_rtx (GTU, VOIDmode, cc0_rtx, const0_rtx), gen_rtx (LABEL_REF, VOIDmode, operand0), pc_rtx));
  59. }
  60.  
  61. rtx
  62. gen_blt (operand0)
  63.      rtx operand0;
  64. {
  65.   return gen_rtx (SET, VOIDmode, pc_rtx, gen_rtx (IF_THEN_ELSE, VOIDmode, gen_rtx (LT, VOIDmode, cc0_rtx, const0_rtx), gen_rtx (LABEL_REF, VOIDmode, operand0), pc_rtx));
  66. }
  67.  
  68. rtx
  69. gen_bltu (operand0)
  70.      rtx operand0;
  71. {
  72.   return gen_rtx (SET, VOIDmode, pc_rtx, gen_rtx (IF_THEN_ELSE, VOIDmode, gen_rtx (LTU, VOIDmode, cc0_rtx, const0_rtx), gen_rtx (LABEL_REF, VOIDmode, operand0), pc_rtx));
  73. }
  74.  
  75. rtx
  76. gen_bge (operand0)
  77.      rtx operand0;
  78. {
  79.   return gen_rtx (SET, VOIDmode, pc_rtx, gen_rtx (IF_THEN_ELSE, VOIDmode, gen_rtx (GE, VOIDmode, cc0_rtx, const0_rtx), gen_rtx (LABEL_REF, VOIDmode, operand0), pc_rtx));
  80. }
  81.  
  82. rtx
  83. gen_bgeu (operand0)
  84.      rtx operand0;
  85. {
  86.   return gen_rtx (SET, VOIDmode, pc_rtx, gen_rtx (IF_THEN_ELSE, VOIDmode, gen_rtx (GEU, VOIDmode, cc0_rtx, const0_rtx), gen_rtx (LABEL_REF, VOIDmode, operand0), pc_rtx));
  87. }
  88.  
  89. rtx
  90. gen_ble (operand0)
  91.      rtx operand0;
  92. {
  93.   return gen_rtx (SET, VOIDmode, pc_rtx, gen_rtx (IF_THEN_ELSE, VOIDmode, gen_rtx (LE, VOIDmode, cc0_rtx, const0_rtx), gen_rtx (LABEL_REF, VOIDmode, operand0), pc_rtx));
  94. }
  95.  
  96. rtx
  97. gen_bleu (operand0)
  98.      rtx operand0;
  99. {
  100.   return gen_rtx (SET, VOIDmode, pc_rtx, gen_rtx (IF_THEN_ELSE, VOIDmode, gen_rtx (LEU, VOIDmode, cc0_rtx, const0_rtx), gen_rtx (LABEL_REF, VOIDmode, operand0), pc_rtx));
  101. }
  102.  
  103. rtx
  104. gen_movsi (operand0, operand1)
  105.      rtx operand0;
  106.      rtx operand1;
  107. {
  108.   return gen_rtx (SET, VOIDmode, operand0, operand1);
  109. }
  110.  
  111. rtx
  112. gen_movqi (operand0, operand1)
  113.      rtx operand0;
  114.      rtx operand1;
  115. {
  116.   rtx operands[2];
  117.  
  118.   extern rtx gen_sequence ();
  119.   extern int emit_to_sequence;
  120.  
  121.   emit_to_sequence++;
  122.   operands[0] = operand0;
  123.   operands[1] = operand1;
  124.  
  125. {
  126.   if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
  127.     operands[1] = copy_to_reg (operands[1]);
  128.  
  129.   if (GET_CODE (operands[1]) == MEM)
  130.     {
  131.       rtx tem = gen_reg_rtx (SImode);
  132.       rtx addr = force_reg (SImode, XEXP (operands[1], 0));
  133.       emit_move_insn (tem, gen_rtx (MEM, SImode, addr));
  134.       emit_insn (gen_rtx (SET, VOIDmode,
  135.               gen_rtx (SUBREG, SImode, operands[0], 0),
  136.               gen_rtx (ZERO_EXTRACT, SImode, tem,
  137.                    gen_rtx (CONST_INT, VOIDmode, 8),
  138.                    addr)));
  139.     }
  140.   else if (GET_CODE (operands[0]) == MEM)
  141.     {
  142.       rtx tem = gen_reg_rtx (SImode);
  143.       rtx addr = force_reg (SImode, XEXP (operands[0], 0));
  144.       emit_move_insn (tem, gen_rtx (MEM, SImode, addr));
  145.       if (! CONSTANT_ADDRESS_P (operands[1]))
  146.     operands[1] = gen_rtx (SUBREG, SImode, operands[1], 0);
  147.       emit_insn (gen_rtx (SET, VOIDmode,
  148.               gen_rtx (ZERO_EXTRACT, SImode, tem,
  149.                    gen_rtx (CONST_INT, VOIDmode, 8),
  150.                    addr),
  151.               operands[1]));
  152.       emit_move_insn (gen_rtx (MEM, SImode, addr), tem);
  153.     }
  154.   else
  155.     {
  156.       emit_insn (gen_rtx (SET, VOIDmode, operands[0], operands[1]));
  157.     }
  158.   DONE;
  159. }
  160.   operand0 = operands[0];
  161.   operand1 = operands[1];
  162.   emit_insn (gen_rtx (SET, VOIDmode, operand0, operand1));
  163.   emit_to_sequence--;
  164.   return gen_sequence ();
  165. }
  166.  
  167. rtx
  168. gen_loadhi (operand0, operand1, operand2, operand3, operand4)
  169.      rtx operand0;
  170.      rtx operand1;
  171.      rtx operand2;
  172.      rtx operand3;
  173.      rtx operand4;
  174. {
  175.   rtx operand5;
  176.   rtx operands[6];
  177.  
  178.   extern rtx gen_sequence ();
  179.   extern int emit_to_sequence;
  180.  
  181.   emit_to_sequence++;
  182.   operands[0] = operand0;
  183.   operands[1] = operand1;
  184.   operands[2] = operand2;
  185.   operands[3] = operand3;
  186.   operands[4] = operand4;
  187. operands[5] = gen_reg_rtx (HImode);
  188.   operand0 = operands[0];
  189.   operand1 = operands[1];
  190.   operand2 = operands[2];
  191.   operand3 = operands[3];
  192.   operand4 = operands[4];
  193.   operand5 = operands[5];
  194.   emit_insn (gen_rtx (SET, VOIDmode, operand2, gen_rtx (MEM, SImode, operand1)));
  195.   emit_insn (gen_rtx (SET, VOIDmode, gen_rtx (SUBREG, SImode, operand5, 0), gen_rtx (ZERO_EXTRACT, SImode, operand2, gen_rtx (CONST_INT, VOIDmode, 8), operand1)));
  196.   emit_insn (gen_rtx (SET, VOIDmode, operand3, gen_rtx (PLUS, SImode, operand1, const1_rtx)));
  197.   emit_insn (gen_rtx (SET, VOIDmode, gen_rtx (SUBREG, SImode, operand4, 0), gen_rtx (ZERO_EXTRACT, SImode, operand2, gen_rtx (CONST_INT, VOIDmode, 8), operand3)));
  198.   emit_insn (gen_rtx (SET, VOIDmode, gen_rtx (ZERO_EXTRACT, SImode, operand5, gen_rtx (CONST_INT, VOIDmode, 8), const1_rtx), gen_rtx (SUBREG, SImode, operand4, 0)));
  199.   emit_insn (gen_rtx (SET, VOIDmode, operand0, operand5));
  200.   emit_to_sequence--;
  201.   return gen_sequence ();
  202. }
  203.  
  204. rtx
  205. gen_storehi (operand0, operand1, operand2, operand3, operand4)
  206.      rtx operand0;
  207.      rtx operand1;
  208.      rtx operand2;
  209.      rtx operand3;
  210.      rtx operand4;
  211. {
  212.   rtx operands[5];
  213.  
  214.   extern rtx gen_sequence ();
  215.   extern int emit_to_sequence;
  216.  
  217.   emit_to_sequence++;
  218.   operands[0] = operand0;
  219.   operands[1] = operand1;
  220.   operands[2] = operand2;
  221.   operands[3] = operand3;
  222.   operands[4] = operand4;
  223.  
  224.   operand0 = operands[0];
  225.   operand1 = operands[1];
  226.   operand2 = operands[2];
  227.   operand3 = operands[3];
  228.   operand4 = operands[4];
  229.   emit_insn (gen_rtx (SET, VOIDmode, operand2, gen_rtx (MEM, SImode, operand0)));
  230.   emit_insn (gen_rtx (SET, VOIDmode, gen_rtx (ZERO_EXTRACT, SImode, operand2, gen_rtx (CONST_INT, VOIDmode, 8), operand0), gen_rtx (SUBREG, SImode, operand1, 0)));
  231.   emit_insn (gen_rtx (SET, VOIDmode, operand3, gen_rtx (PLUS, SImode, operand0, const1_rtx)));
  232.   emit_insn (gen_rtx (SET, VOIDmode, gen_rtx (SUBREG, SImode, operand4, 0), gen_rtx (ZERO_EXTRACT, SImode, operand1, gen_rtx (CONST_INT, VOIDmode, 8), const1_rtx)));
  233.   emit_insn (gen_rtx (SET, VOIDmode, gen_rtx (ZERO_EXTRACT, SImode, operand2, gen_rtx (CONST_INT, VOIDmode, 8), operand3), gen_rtx (SUBREG, SImode, operand4, 0)));
  234.   emit_insn (gen_rtx (SET, VOIDmode, gen_rtx (MEM, SImode, operand0), operand2));
  235.   emit_to_sequence--;
  236.   return gen_sequence ();
  237. }
  238.  
  239. rtx
  240. gen_storeinthi (operand0, operand1, operand2, operand3)
  241.      rtx operand0;
  242.      rtx operand1;
  243.      rtx operand2;
  244.      rtx operand3;
  245. {
  246.   rtx operand4;
  247.   rtx operand5;
  248.   rtx operand6;
  249.   rtx operands[7];
  250.  
  251.   extern rtx gen_sequence ();
  252.   extern int emit_to_sequence;
  253.  
  254.   emit_to_sequence++;
  255.   operands[0] = operand0;
  256.   operands[1] = operand1;
  257.   operands[2] = operand2;
  258.   operands[3] = operand3;
  259.  operands[5] = gen_rtx (CONST_INT, VOIDmode, INTVAL (operands[1]) & 255);
  260.     operands[6] = gen_rtx (CONST_INT, VOIDmode,
  261.                (INTVAL (operands[1]) >> 8) & 255);
  262.  
  263.   operand0 = operands[0];
  264.   operand1 = operands[1];
  265.   operand2 = operands[2];
  266.   operand3 = operands[3];
  267.   operand4 = operands[4];
  268.   operand5 = operands[5];
  269.   operand6 = operands[6];
  270.   emit_insn (gen_rtx (SET, VOIDmode, operand2, gen_rtx (MEM, SImode, operand0)));
  271.   emit_insn (gen_rtx (SET, VOIDmode, gen_rtx (ZERO_EXTRACT, SImode, operand2, gen_rtx (CONST_INT, VOIDmode, 8), operand0), operand5));
  272.   emit_insn (gen_rtx (SET, VOIDmode, operand3, gen_rtx (PLUS, SImode, operand0, const1_rtx)));
  273.   emit_insn (gen_rtx (SET, VOIDmode, gen_rtx (ZERO_EXTRACT, SImode, operand2, gen_rtx (CONST_INT, VOIDmode, 8), operand3), operand6));
  274.   emit_insn (gen_rtx (SET, VOIDmode, gen_rtx (MEM, SImode, operand0), operand2));
  275.   emit_to_sequence--;
  276.   return gen_sequence ();
  277. }
  278.  
  279. rtx
  280. gen_movhi (operand0, operand1)
  281.      rtx operand0;
  282.      rtx operand1;
  283. {
  284.   rtx operands[2];
  285.  
  286.   extern rtx gen_sequence ();
  287.   extern int emit_to_sequence;
  288.  
  289.   emit_to_sequence++;
  290.   operands[0] = operand0;
  291.   operands[1] = operand1;
  292.  
  293. {
  294.   if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
  295.     operands[1] = copy_to_reg (operands[1]);
  296.   
  297.   if (GET_CODE (operands[1]) == MEM)
  298.     {
  299.       rtx insn =
  300.     emit_insn (gen_loadhi (operands[0],
  301.                    force_reg (SImode, XEXP (operands[1], 0)),
  302.                    gen_reg_rtx (SImode), gen_reg_rtx (SImode),
  303.                    gen_reg_rtx (QImode)));
  304.       /* Tell cse what value the loadhi produces, so it detect duplicates.  */
  305.       REG_NOTES (insn) = gen_rtx (EXPR_LIST, REG_EQUAL, operands[1], 0);
  306.     }
  307.   else if (GET_CODE (operands[0]) == MEM)
  308.     {
  309.       if (GET_CODE (operands[1]) == CONST_INT)
  310.     emit_insn (gen_storeinthi (force_reg (SImode, XEXP (operands[0], 0)),
  311.                        operands[1],
  312.                    gen_reg_rtx (SImode), gen_reg_rtx (SImode),
  313.                    gen_reg_rtx (QImode)));
  314.       else
  315.     {
  316.       if (CONSTANT_P (operands[1]))
  317.             operands[1] = force_reg (HImode, operands[1]);
  318.       emit_insn (gen_storehi (force_reg (SImode, XEXP (operands[0], 0)),
  319.                   operands[1],
  320.                   gen_reg_rtx (SImode), gen_reg_rtx (SImode),
  321.                   gen_reg_rtx (QImode)));
  322.     }
  323.     }
  324.   else
  325.     emit_insn (gen_rtx (SET, VOIDmode, operands[0], operands[1]));
  326.   DONE;
  327. }
  328.   operand0 = operands[0];
  329.   operand1 = operands[1];
  330.   emit_insn (gen_rtx (SET, VOIDmode, operand0, operand1));
  331.   emit_to_sequence--;
  332.   return gen_sequence ();
  333. }
  334.  
  335. rtx
  336. gen_movdf (operand0, operand1)
  337.      rtx operand0;
  338.      rtx operand1;
  339. {
  340.   return gen_rtx (SET, VOIDmode, operand0, operand1);
  341. }
  342.  
  343. rtx
  344. gen_movdi (operand0, operand1)
  345.      rtx operand0;
  346.      rtx operand1;
  347. {
  348.   return gen_rtx (SET, VOIDmode, operand0, operand1);
  349. }
  350.  
  351. rtx
  352. gen_movsf (operand0, operand1)
  353.      rtx operand0;
  354.      rtx operand1;
  355. {
  356.   return gen_rtx (SET, VOIDmode, operand0, operand1);
  357. }
  358.  
  359. rtx
  360. gen_truncsiqi2 (operand0, operand1)
  361.      rtx operand0;
  362.      rtx operand1;
  363. {
  364.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (TRUNCATE, QImode, operand1));
  365. }
  366.  
  367. rtx
  368. gen_trunchiqi2 (operand0, operand1)
  369.      rtx operand0;
  370.      rtx operand1;
  371. {
  372.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (TRUNCATE, QImode, operand1));
  373. }
  374.  
  375. rtx
  376. gen_truncsihi2 (operand0, operand1)
  377.      rtx operand0;
  378.      rtx operand1;
  379. {
  380.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (TRUNCATE, HImode, operand1));
  381. }
  382.  
  383. rtx
  384. gen_zero_extendhisi2 (operand0, operand1)
  385.      rtx operand0;
  386.      rtx operand1;
  387. {
  388.   rtx operand2;
  389.   rtx operands[3];
  390.  
  391.   extern rtx gen_sequence ();
  392.   extern int emit_to_sequence;
  393.  
  394.   emit_to_sequence++;
  395.   operands[0] = operand0;
  396.   operands[1] = operand1;
  397.   operands[2] = force_reg (SImode, gen_rtx (CONST_INT, VOIDmode, 65535)); 
  398.   operand0 = operands[0];
  399.   operand1 = operands[1];
  400.   operand2 = operands[2];
  401.   emit_insn (gen_rtx (SET, VOIDmode, operand0, gen_rtx (AND, SImode, gen_rtx (SUBREG, SImode, operand1, 0), operand2)));
  402.   emit_to_sequence--;
  403.   return gen_sequence ();
  404. }
  405.  
  406. rtx
  407. gen_zero_extendqihi2 (operand0, operand1)
  408.      rtx operand0;
  409.      rtx operand1;
  410. {
  411.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (ZERO_EXTEND, HImode, operand1));
  412. }
  413.  
  414. rtx
  415. gen_zero_extendqisi2 (operand0, operand1)
  416.      rtx operand0;
  417.      rtx operand1;
  418. {
  419.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (ZERO_EXTEND, SImode, operand1));
  420. }
  421.  
  422. rtx
  423. gen_extendhisi2 (operand0, operand1)
  424.      rtx operand0;
  425.      rtx operand1;
  426. {
  427.   rtx operand2;
  428.   rtx operand3;
  429.   rtx operand4;
  430.   rtx operand5;
  431.   rtx operands[6];
  432.  
  433.   extern rtx gen_sequence ();
  434.   extern int emit_to_sequence;
  435.  
  436.   emit_to_sequence++;
  437.   operands[0] = operand0;
  438.   operands[1] = operand1;
  439.  
  440. {
  441.   operands[2] = gen_reg_rtx (SImode);
  442.   operands[3] = gen_reg_rtx (SImode);
  443.   operands[4] = force_reg (SImode, gen_rtx (CONST_INT, VOIDmode, 65535));
  444.   operands[5] = force_reg (SImode, gen_rtx (CONST_INT, VOIDmode, -32768));
  445. }
  446.   operand0 = operands[0];
  447.   operand1 = operands[1];
  448.   operand2 = operands[2];
  449.   operand3 = operands[3];
  450.   operand4 = operands[4];
  451.   operand5 = operands[5];
  452.   emit_insn (gen_rtx (SET, VOIDmode, operand2, gen_rtx (AND, SImode, gen_rtx (SUBREG, SImode, operand1, 0), operand4)));
  453.   emit_insn (gen_rtx (SET, VOIDmode, operand3, gen_rtx (PLUS, SImode, operand2, operand5)));
  454.   emit_insn (gen_rtx (SET, VOIDmode, operand0, gen_rtx (XOR, SImode, operand3, operand5)));
  455.   emit_to_sequence--;
  456.   return gen_sequence ();
  457. }
  458.  
  459. rtx
  460. gen_extendqihi2 (operand0, operand1)
  461.      rtx operand0;
  462.      rtx operand1;
  463. {
  464.   rtx operand2;
  465.   rtx operand3;
  466.   rtx operands[4];
  467.  
  468.   extern rtx gen_sequence ();
  469.   extern int emit_to_sequence;
  470.  
  471.   emit_to_sequence++;
  472.   operands[0] = operand0;
  473.   operands[1] = operand1;
  474.  
  475. {
  476.   operands[2] = gen_reg_rtx (HImode);
  477.   operands[3] = gen_reg_rtx (HImode);
  478. }
  479.   operand0 = operands[0];
  480.   operand1 = operands[1];
  481.   operand2 = operands[2];
  482.   operand3 = operands[3];
  483.   emit_insn (gen_rtx (SET, VOIDmode, operand2, gen_rtx (AND, HImode, gen_rtx (SUBREG, HImode, operand1, 0), gen_rtx (CONST_INT, VOIDmode, 255))));
  484.   emit_insn (gen_rtx (SET, VOIDmode, operand3, gen_rtx (PLUS, SImode, operand2, gen_rtx (CONST_INT, VOIDmode, -128))));
  485.   emit_insn (gen_rtx (SET, VOIDmode, operand0, gen_rtx (XOR, SImode, operand3, gen_rtx (CONST_INT, VOIDmode, -128))));
  486.   emit_to_sequence--;
  487.   return gen_sequence ();
  488. }
  489.  
  490. rtx
  491. gen_extendqisi2 (operand0, operand1)
  492.      rtx operand0;
  493.      rtx operand1;
  494. {
  495.   rtx operand2;
  496.   rtx operand3;
  497.   rtx operands[4];
  498.  
  499.   extern rtx gen_sequence ();
  500.   extern int emit_to_sequence;
  501.  
  502.   emit_to_sequence++;
  503.   operands[0] = operand0;
  504.   operands[1] = operand1;
  505.  
  506. {
  507.   operands[2] = gen_reg_rtx (SImode);
  508.   operands[3] = gen_reg_rtx (SImode);
  509. }
  510.   operand0 = operands[0];
  511.   operand1 = operands[1];
  512.   operand2 = operands[2];
  513.   operand3 = operands[3];
  514.   emit_insn (gen_rtx (SET, VOIDmode, operand2, gen_rtx (AND, SImode, gen_rtx (SUBREG, SImode, operand1, 0), gen_rtx (CONST_INT, VOIDmode, 255))));
  515.   emit_insn (gen_rtx (SET, VOIDmode, operand3, gen_rtx (PLUS, SImode, operand2, gen_rtx (CONST_INT, VOIDmode, -128))));
  516.   emit_insn (gen_rtx (SET, VOIDmode, operand0, gen_rtx (XOR, SImode, operand3, gen_rtx (CONST_INT, VOIDmode, -128))));
  517.   emit_to_sequence--;
  518.   return gen_sequence ();
  519. }
  520.  
  521. rtx
  522. gen_addsi3 (operand0, operand1, operand2)
  523.      rtx operand0;
  524.      rtx operand1;
  525.      rtx operand2;
  526. {
  527.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (PLUS, SImode, operand1, operand2));
  528. }
  529.  
  530. rtx
  531. gen_subsi3 (operand0, operand1, operand2)
  532.      rtx operand0;
  533.      rtx operand1;
  534.      rtx operand2;
  535. {
  536.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (MINUS, SImode, operand1, operand2));
  537. }
  538.  
  539. rtx
  540. gen_andsi3 (operand0, operand1, operand2)
  541.      rtx operand0;
  542.      rtx operand1;
  543.      rtx operand2;
  544. {
  545.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (AND, SImode, operand1, operand2));
  546. }
  547.  
  548. rtx
  549. gen_iorsi3 (operand0, operand1, operand2)
  550.      rtx operand0;
  551.      rtx operand1;
  552.      rtx operand2;
  553. {
  554.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (IOR, SImode, operand1, operand2));
  555. }
  556.  
  557. rtx
  558. gen_xorsi3 (operand0, operand1, operand2)
  559.      rtx operand0;
  560.      rtx operand1;
  561.      rtx operand2;
  562. {
  563.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (XOR, SImode, operand1, operand2));
  564. }
  565.  
  566. rtx
  567. gen_negsi2 (operand0, operand1)
  568.      rtx operand0;
  569.      rtx operand1;
  570. {
  571.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (NEG, SImode, operand1));
  572. }
  573.  
  574. rtx
  575. gen_one_cmplsi2 (operand0, operand1)
  576.      rtx operand0;
  577.      rtx operand1;
  578. {
  579.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (NOT, SImode, operand1));
  580. }
  581.  
  582. rtx
  583. gen_adddf3 (operand0, operand1, operand2)
  584.      rtx operand0;
  585.      rtx operand1;
  586.      rtx operand2;
  587. {
  588.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (PLUS, DFmode, operand1, operand2));
  589. }
  590.  
  591. rtx
  592. gen_addsf3 (operand0, operand1, operand2)
  593.      rtx operand0;
  594.      rtx operand1;
  595.      rtx operand2;
  596. {
  597.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (PLUS, SFmode, operand1, operand2));
  598. }
  599.  
  600. rtx
  601. gen_subdf3 (operand0, operand1, operand2)
  602.      rtx operand0;
  603.      rtx operand1;
  604.      rtx operand2;
  605. {
  606.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (MINUS, DFmode, operand1, operand2));
  607. }
  608.  
  609. rtx
  610. gen_subsf3 (operand0, operand1, operand2)
  611.      rtx operand0;
  612.      rtx operand1;
  613.      rtx operand2;
  614. {
  615.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (MINUS, SFmode, operand1, operand2));
  616. }
  617.  
  618. rtx
  619. gen_muldf3 (operand0, operand1, operand2)
  620.      rtx operand0;
  621.      rtx operand1;
  622.      rtx operand2;
  623. {
  624.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (MULT, DFmode, operand1, operand2));
  625. }
  626.  
  627. rtx
  628. gen_mulsf3 (operand0, operand1, operand2)
  629.      rtx operand0;
  630.      rtx operand1;
  631.      rtx operand2;
  632. {
  633.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (MULT, SFmode, operand1, operand2));
  634. }
  635.  
  636. rtx
  637. gen_divdf3 (operand0, operand1, operand2)
  638.      rtx operand0;
  639.      rtx operand1;
  640.      rtx operand2;
  641. {
  642.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (DIV, DFmode, operand1, operand2));
  643. }
  644.  
  645. rtx
  646. gen_divsf3 (operand0, operand1, operand2)
  647.      rtx operand0;
  648.      rtx operand1;
  649.      rtx operand2;
  650. {
  651.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (DIV, SFmode, operand1, operand2));
  652. }
  653.  
  654. rtx
  655. gen_negdf2 (operand0, operand1)
  656.      rtx operand0;
  657.      rtx operand1;
  658. {
  659.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (NEG, DFmode, operand1));
  660. }
  661.  
  662. rtx
  663. gen_negsf2 (operand0, operand1)
  664.      rtx operand0;
  665.      rtx operand1;
  666. {
  667.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (NEG, SFmode, operand1));
  668. }
  669.  
  670. rtx
  671. gen_absdf2 (operand0, operand1)
  672.      rtx operand0;
  673.      rtx operand1;
  674. {
  675.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (ABS, DFmode, operand1));
  676. }
  677.  
  678. rtx
  679. gen_abssf2 (operand0, operand1)
  680.      rtx operand0;
  681.      rtx operand1;
  682. {
  683.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (ABS, SFmode, operand1));
  684. }
  685.  
  686. rtx
  687. gen_ashlsi3 (operand0, operand1, operand2)
  688.      rtx operand0;
  689.      rtx operand1;
  690.      rtx operand2;
  691. {
  692.   rtx operands[3];
  693.  
  694.   extern rtx gen_sequence ();
  695.   extern int emit_to_sequence;
  696.  
  697.   emit_to_sequence++;
  698.   operands[0] = operand0;
  699.   operands[1] = operand1;
  700.   operands[2] = operand2;
  701.  
  702. {
  703.   if (GET_CODE (operands[2]) != CONST_INT
  704.       || ! TARGET_EXPAND_SHIFTS && (unsigned) INTVAL (operands[2]) > 3)
  705.     FAIL;
  706. }
  707.   operand0 = operands[0];
  708.   operand1 = operands[1];
  709.   operand2 = operands[2];
  710.   emit_insn (gen_rtx (SET, VOIDmode, operand0, gen_rtx (ASHIFT, SImode, operand1, operand2)));
  711.   emit_to_sequence--;
  712.   return gen_sequence ();
  713. }
  714.  
  715. rtx
  716. gen_lshlsi3 (operand0, operand1, operand2)
  717.      rtx operand0;
  718.      rtx operand1;
  719.      rtx operand2;
  720. {
  721.   rtx operands[3];
  722.  
  723.   extern rtx gen_sequence ();
  724.   extern int emit_to_sequence;
  725.  
  726.   emit_to_sequence++;
  727.   operands[0] = operand0;
  728.   operands[1] = operand1;
  729.   operands[2] = operand2;
  730.  
  731. {
  732.   if (GET_CODE (operands[2]) != CONST_INT
  733.       || ! TARGET_EXPAND_SHIFTS && (unsigned) INTVAL (operands[2]) > 3)
  734.     FAIL;
  735. }
  736.   operand0 = operands[0];
  737.   operand1 = operands[1];
  738.   operand2 = operands[2];
  739.   emit_insn (gen_rtx (SET, VOIDmode, operand0, gen_rtx (ASHIFT, SImode, operand1, operand2)));
  740.   emit_to_sequence--;
  741.   return gen_sequence ();
  742. }
  743.  
  744. rtx
  745. gen_ashrsi3 (operand0, operand1, operand2)
  746.      rtx operand0;
  747.      rtx operand1;
  748.      rtx operand2;
  749. {
  750.   rtx operands[3];
  751.  
  752.   extern rtx gen_sequence ();
  753.   extern int emit_to_sequence;
  754.  
  755.   emit_to_sequence++;
  756.   operands[0] = operand0;
  757.   operands[1] = operand1;
  758.   operands[2] = operand2;
  759.  
  760. {
  761.   if (GET_CODE (operands[2]) != CONST_INT
  762.       || ! TARGET_EXPAND_SHIFTS && (unsigned) INTVAL (operands[2]) > 1)
  763.     FAIL;
  764. }
  765.   operand0 = operands[0];
  766.   operand1 = operands[1];
  767.   operand2 = operands[2];
  768.   emit_insn (gen_rtx (SET, VOIDmode, operand0, gen_rtx (ASHIFTRT, SImode, operand1, operand2)));
  769.   emit_to_sequence--;
  770.   return gen_sequence ();
  771. }
  772.  
  773. rtx
  774. gen_lshrsi3 (operand0, operand1, operand2)
  775.      rtx operand0;
  776.      rtx operand1;
  777.      rtx operand2;
  778. {
  779.   rtx operands[3];
  780.  
  781.   extern rtx gen_sequence ();
  782.   extern int emit_to_sequence;
  783.  
  784.   emit_to_sequence++;
  785.   operands[0] = operand0;
  786.   operands[1] = operand1;
  787.   operands[2] = operand2;
  788.  
  789. {
  790.   if (GET_CODE (operands[2]) != CONST_INT
  791.       || ! TARGET_EXPAND_SHIFTS && (unsigned) INTVAL (operands[2]) > 1)
  792.     FAIL;
  793. }
  794.   operand0 = operands[0];
  795.   operand1 = operands[1];
  796.   operand2 = operands[2];
  797.   emit_insn (gen_rtx (SET, VOIDmode, operand0, gen_rtx (LSHIFTRT, SImode, operand1, operand2)));
  798.   emit_to_sequence--;
  799.   return gen_sequence ();
  800. }
  801.  
  802. rtx
  803. gen_jump (operand0)
  804.      rtx operand0;
  805. {
  806.   return gen_rtx (SET, VOIDmode, pc_rtx, gen_rtx (LABEL_REF, VOIDmode, operand0));
  807. }
  808.  
  809. rtx
  810. gen_tablejump (operand0, operand1)
  811.      rtx operand0;
  812.      rtx operand1;
  813. {
  814.   return gen_rtx (PARALLEL, VOIDmode, gen_rtvec (2,
  815.         gen_rtx (SET, VOIDmode, pc_rtx, operand0),
  816.         gen_rtx (USE, VOIDmode, gen_rtx (LABEL_REF, VOIDmode, operand1))));
  817. }
  818.  
  819. rtx
  820. gen_call (operand0, operand1)
  821.      rtx operand0;
  822.      rtx operand1;
  823. {
  824.   return gen_rtx (CALL, VOIDmode, operand0, operand1);
  825. }
  826.  
  827. rtx
  828. gen_call_value (operand0, operand1, operand2)
  829.      rtx operand0;
  830.      rtx operand1;
  831.      rtx operand2;
  832. {
  833.   return gen_rtx (SET, VOIDmode, operand0, gen_rtx (CALL, VOIDmode, operand1, operand2));
  834. }
  835.  
  836.